/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.asportoonline.business.delegates;

import java.util.List;
import org.asportoonline.business.beans.LocaleManager;
import org.asportoonline.entities.Cliente;
import org.asportoonline.entities.Locale;

/**
 *
 * @author fe
 */
public class LocaleManagerDelegate extends AbstractDelegate implements LocaleManager {

    @Override
    protected String getServiceName() {
        return "java:comp/env/ejb/LocaleManager";
    }

    /**
     * Cerca tutti i Locali presenti nel database.
     * 
     * @return restituisce una lista contenente tutti i Locali presenti nel database; 
     * se non ce ne sono restituisce null.
     * @see Locale
     */
    public List<Locale> elencoLocali() {
        return ((LocaleManager)getService()).elencoLocali();
    }

    /**
     * Inserisce un nuovo Locale, che deve avere un nome univoco.
     * 
     * @param locale 
     * @see Locale
     */
    public void inserisciLocale(Locale locale) {
        ((LocaleManager)getService()).inserisciLocale(locale);
    }

    /**
     * Cerca un Locale in base all'ID.
     * 
     * @param id ID del locale.
     * @return se l'ID esiste restituisce il Locale, altrimenti restituisce null.
     * @see Locale
     */
    public Locale cercaLocale(long id) {
        return ((LocaleManager)getService()).cercaLocale(id);
    }

    /**
     * Cerca un Locale in base al nome.
     * 
     * @param nome nome del locale.
     * @return se il nome esiste restituisce il Locale, altrimenti restituisce null.
     * @see Locale
     */
    public Locale cercaLocale(String nome) {
        return ((LocaleManager)getService()).cercaLocale(nome);
    }

    /**
     * Recupera tutti i Locali di cui un certo Cliente (venditore) è proprietario.
     * 
     * @param c Cliente proprietario
     * @return se il Cliente esiste e possiede almeno un Locale, restituisce la lista dei Locali, altrimenti restituisce null.
     * @see Locale
     */
    public List<Locale> recuperaLocaliVenditore(Cliente c) {
        return ((LocaleManager)getService()).recuperaLocaliVenditore(c);
    }

    /**
     * Modifica un locale esistente.
     * 
     * @param locale 
     * @see Locale
     */
    public void aggiornaLocale(Locale locale) {
        ((LocaleManager)getService()).aggiornaLocale(locale);
    }

    /**
     * Recupera tutte le località in cui è presente almeno un Locale.
     * 
     * @return restituisce una lista contenente tutti i nomi delle città in cui è presente almeno un locale;
     * se non ci sono locali registrati restituisce null.
     */
    public List<String> recuperaTutteLeLocalita() {
        return ((LocaleManager)getService()).recuperaTutteLeLocalita();
    }

    /**
     * Recupera tutte i locali presenti in una data città.
     * 
     * @param localita città di cui si vogliono ottenere i locali.
     * @return restituisce una lista contenente tutti i locali della città in input;
     * se non ci sono locali registrati in tale città restituisce null.
     * @see Locale
     */
    public List<Locale> cercaPerLocalita(String localita) {
        return ((LocaleManager)getService()).cercaPerLocalita(localita);
    }

    /**
     * Rimuove un locale.
     * 
     * @param locale 
     * @see Locale
     */
    public void eliminaLocale(Locale locale) {
        ((LocaleManager)getService()).eliminaLocale(locale);
    }
}
